package com.zhz.model.employee;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.zhz.common.tool.mybatisplus.base.dal.entity.BasePO;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;

import java.time.LocalDate;
import java.time.LocalDateTime;

/**
 * 调岗申请
 *
 * @author zhouhengzhe
 * @date 2023/3/21
 */
@Data
@EqualsAndHashCode(callSuper = true)
@AllArgsConstructor
@NoArgsConstructor
@SuperBuilder
@TableName(value = "em_transferposition")
public class EmployeeTransferposition extends BasePO {
    /**
     * 用户ID
     */
    @TableId(USER_ID)
    private String userId;

    /**
     * 岗位
     */
    @TableField(POST)
    private String post;

    /**
     * 职级
     */
    @TableField(RANK)
    private String rank;

    /**
     * 汇报对象
     */
    @TableField(REPORTING_OBJECT)
    private String reportingObject;

    /**
     * HRBP
     */
    @TableField(HRBP)
    private String hrbp;

    /**
     * 调岗时间
     */
    @TableField(ADJUSTMENT_TIME)
    private LocalDateTime adjustmentTime;

    /**
     * 调岗原因
     */
    @TableField(CAUSE_OF_ADJUSTING_POST)
    private String causeOfAdjustingPost;

    /**
     * 附件 [1,2,3]
     */
    @TableField(ENCLOSURE)
    private String enclosure;

    /**
     * 管理形式
     */
    @TableField(FORM_OF_MANAGEMENT)
    private String formOfManagement;

    /**
     * 工作城市
     */
    @TableField(WORKING_CITY)
    private String workingCity;

    /**
     * 纳税城市
     */
    @TableField(TAXABLE_CITY)
    private String taxableCity;

    /**
     * 现合同开始时间
     */
    @TableField(CURRENT_CONTRACT_START_TIME)
    private LocalDate currentContractStartTime;

    /**
     * 现合同结束时间
     */
    @TableField(CLOSING_TIME_OF_CURRENT_CONTRACT)
    private LocalDate closingTimeOfCurrentContract;

    /**
     * 工作地点
     */
    @TableField(WORKING_PLACE)
    private String workingPlace;

    /**
     * 首次合同开始时间
     */
    @TableField(INITIAL_CONTRACT_START_TIME)
    private String initialContractStartTime;

    /**
     * 首次合同结束时间
     */
    @TableField(FIRST_CONTRACT_TERMINATION_TIME)
    private String firstContractTerminationTime;

    /**
     * 合同期限
     */
    @TableField(CONTRACT_PERIOD)
    private String contractPeriod;

    /**
     * 续签次数
     */
    @TableField(RENEWAL_NUMBER)
    private Integer renewalNumber;

    /**
     * 推荐企业人
     */
    @TableField(RECOMMENDER_BUSINESS_PEOPLE)
    private String recommenderBusinessPeople;

    /**
     * 单据状态 1是未执行，2是已执行
     */
    @TableField(ESTATUS)
    private Integer estatus;

    public static final String USER_ID = "user_id";

    public static final String POST = "post";

    public static final String RANK = "rank";

    public static final String REPORTING_OBJECT = "reporting_object";

    public static final String HRBP = "hrbp";

    public static final String ADJUSTMENT_TIME = "adjustment_time";

    public static final String CAUSE_OF_ADJUSTING_POST = "cause_of_adjusting_post";

    public static final String ENCLOSURE = "enclosure";

    public static final String FORM_OF_MANAGEMENT = "form_of_management";

    public static final String WORKING_CITY = "working_city";

    public static final String TAXABLE_CITY = "taxable_city";

    public static final String CURRENT_CONTRACT_START_TIME = "current_contract_start_time";

    public static final String CLOSING_TIME_OF_CURRENT_CONTRACT = "closing_time_of_current_contract";

    public static final String WORKING_PLACE = "working_place";

    public static final String INITIAL_CONTRACT_START_TIME = "initial_contract_start_time";

    public static final String FIRST_CONTRACT_TERMINATION_TIME = "first_contract_termination_time";

    public static final String CONTRACT_PERIOD = "contract_period";

    public static final String RENEWAL_NUMBER = "renewal_number";

    public static final String RECOMMENDER_BUSINESS_PEOPLE = "recommender_business_people";

    public static final String ESTATUS = "estatus";

}